# 数据库初始化脚本
from app import create_app, db

# 确保所有模型都被导入和注册
from models.user import User
from models.stock import Stock
from models.portfolio import Portfolio
from models.transaction import Transaction

# 创建应用
app = create_app()

# 在应用上下文中初始化数据库
with app.app_context():
    # 创建所有表
    db.create_all()
    
    # 初始化管理员用户
    admin = User(username='admin', email='admin@example.com')
    admin.set_password('admin123')
    db.session.add(admin)
    
    # 初始化一些股票数据
    stocks = [
        Stock(code='AAPL', name='Apple Inc.', market='NASDAQ'),
        Stock(code='MSFT', name='Microsoft Corporation', market='NASDAQ'),
        Stock(code='GOOG', name='Alphabet Inc.', market='NASDAQ'),
        Stock(code='BABA', name='Alibaba Group Holding Ltd.', market='NYSE'),
        Stock(code='TSLA', name='Tesla, Inc.', market='NASDAQ')
    ]
    db.session.add_all(stocks)
    
    # 为管理员创建投资组合
    portfolio = Portfolio(user_id=1, cash=100000.0)
    db.session.add(portfolio)
    
    # 提交更改
    db.session.commit()
    
    print('数据库初始化完成！')
    print(f'创建了管理员用户: username=admin, password=admin123')
    print(f'初始化了 {len(stocks)} 只股票数据')
    print(f'创建了管理员投资组合，初始资金: 100000.0')